La plate-forme Arduino est devenue populaire pour le développement de projets électroniques. Les cartes Arduino sont faciles à utiliser et leur programmation est simple, même pour les débutants. La carte Arduino Zero est une carte puissante qui offre des fonctionnalités avancées qui la distinguent des autres cartes de la famille Arduino. Cet article est un aperçu de la carte Arduino Zero, de ses spécifications, de ses fonctionnalités, de son environnement de programmation et de ses applications.

Qu'est-ce qu'Arduino Zero

La carte Arduino Zero est une carte basée sur Atmel SAMD21, qui est la première carte Arduino 32 bits. Il a été introduit en 2015 et est conçu pour fournir une plate-forme puissante aux développeurs pour créer des applications IoT. La carte est compatible avec le logiciel Arduino (IDE) et peut être programmée en utilisant la même syntaxe Arduino que les autres cartes Arduino. Il s'agit d'une carte très polyvalente qui peut être utilisée pour un large éventail d'applications, y compris la robotique, l'automatisation, etc.

Specifications de Arduino Zero

La carte Arduino Zero a les spécifications suivantes :

MicrocontrôleurATSAMD21G18, 32-Bit ARM® Cortex® M0+
Tension de fonctionnement3.3V
Broches d'E/S numériques20
Broches PWM 3, 4, 5, 6, 8, 9, 10, 11, 12, 13
UART2 (Native and Programming)
Broches d'entrée analogiques6, 12-bit ADC channels
Broches de sortie analogique1, 10-bit DAC
Interruptions externesToutes les broches sauf la broche 4
Courant CC par broche d'E/S7 mA
Mémoire flash256 KB
SRAM32 KB
EEPROMNone. See documentation
LED_BUILTIN13
Vitesse d'horloge48 MHz
Longueur68 mm
Largeur53 mm
Poid

12 gr

 

Caractéristiques d'Arduino Zéro

La carte Arduino Zero offre plusieurs fonctionnalités qui en font une carte très polyvalente et puissante :

  • 32-bit ARM Cortex-M0+ core
  • Il dispose d'une mémoire Flash de 256 Ko et d'une mémoire SRAM de 32 Ko
  • ADC 12 bits et 12 sorties PWM
  • Port hôte/périphérique USB 2.0
  • Niveau logique 3.3V
  • Interface de débogage EDBG

Langage de programmation pour Arduino Zero

Le langage de programmation utilisé pour programmer la carte Arduino Zero est C++. La carte Arduino Zero peut être programmée à l'aide du logiciel Arduino (IDE), disponible pour Windows, macOS et Linux. Le logiciel fournit un éditeur de code, un compilateur et un moniteur série, ce qui facilite l'écriture, la compilation et le débogage du code.

Programmation de la carte Arduino Zero

Le téléchargement de code sur l'Arduino Zero est différent des cartes Arduino normales. Comme Arduino Zero est basé sur SAMD21 qui est différent du microcontrôleur AVR, la plupart des cartes Arduino populaires sont basées sur la structure AVR.

Arduino Zero est livré avec deux ports UART, l'un est natif et l'autre est un port de programmation. Pour télécharger des croquis sur la carte, il est recommandé d'utiliser le port de programmation au lieu du port natif. Cela est dû à sa capacité à effacer les données sur la puce une fois le code téléchargé.

  • Port de programmation : Dans Arduino Zero, ce port utilise l'EDBG et peut programmer la carte à l'aide de l'USB vers SWD. Pour programmer Arduino Zero à l'aide de ce port, sélectionnez-le dans la section des ports IDE et connectez ce port au PC à l'aide d'un câble USB. Pour référence, ce port est plus proche de la prise CC, comme indiqué dans l'image ci-dessus.
  • Port natif : Le port natif est connecté directement au microcontrôleur SAMD21 sur la carte. Pour utiliser le port natif, sélectionnez-le dans la section du port IDE, puis utilisez le câble USB pour établir la connexion d'Arduino Zero avec le PC à l'aide de ce port. Ce port est situé sur le côté gauche du bouton de réinitialisation, comme indiqué dans l'image ci-dessus.

Comme d'autres cartes basées sur avrdude pour télécharger du code sur le microcontrôleur. L'Arduino Zero s'appuie sur bossac et le port de programmation Arduino Zero utilise openOCD.

Principaux avantages d'ARM

L'Arduino Zero est basé sur un cœur ARM 32 bits tandis que d'autres microcontrôleurs utilisent la structure AVR 8 bits. Le noyau ARM est plus avancé dans le fonctionnement que la structure AVR. Voici quelques faits saillants principaux :

  • Le cœur ARM a une horloge CPU à 48 MHz.
  • Le noyau Arduino zero ARM dispose d'un contrôleur DMA à 12 canaux qui aide le processeur dans les tâches gourmandes en mémoire.
  • Arduino Zero peut gérer très facilement les données de 4 octets en utilisant le cœur ARM 32 bits sur l'horloge du processeur unique.
  • Il dispose d'un RTC 32 bits avec prise en charge de l'horloge/calendrier.It comes with a 32-bit CRC generator.
  • Le cœur ARM possède une interface à deux canaux (I2S).
  • Il dispose d'un contrôleur tactile périphérique (PTC) intégré.

Débogueur intégré Atmel

La carte Arduino Zero comprend une puce Atmel Embedded Debugger (EDBG) qui fournit une gamme de fonctions de débogage et de programmation.

La puce EDBG de la carte Arduino Zero peut être utilisée pour programmer et déboguer la carte via le port de programmation, qui est le port le plus proche de la prise d'alimentation CC. Le port de programmation utilise la puce EDBG comme convertisseur USB vers SWD (Serial Wire Debug), vous permettant de programmer et de déboguer le microcontrôleur SAMD21 à l'aide du protocole SWD.

En plus des fonctionnalités de programmation et de débogage, la puce EDBG de la carte Arduino Zero fournit également une interface de port COM virtuel, vous permettant de communiquer avec la carte via le port USB natif, qui est le port le plus proche du bouton de réinitialisation. Cette interface peut être utilisée pour différents protocoles dans Arduino Zero comme UART, SPI et I2C.

Puissance

L'Arduino Zero dispose de deux sources d'alimentation différentes, tout comme l'Arduino Uno :

  • Connecteur USB
  • Alimentation externe

La carte est suffisamment intelligente pour sélectionner automatiquement la source d'alimentation, ce qui vous permet de basculer facilement entre les modes d'alimentation.

Sources d'alimentation externes pour l'Arduino Zero

Les sources d'alimentation externes pour l'Arduino Zero peuvent provenir d'un adaptateur AC-DC ou d'une batterie. Pour connecter une source d'alimentation externe, une fiche à pôle positif de 2,1 mm peut être utilisée avec une prise à barillet Arduino Zero DC. Nous pouvons également connecter des sources d'alimentation externes directement avec la broche VIN comme nous le faisons dans Arduino Uno. Cela vous donne la possibilité de choisir la source d'alimentation la plus adaptée à votre projet.

Plage de tension pour l'Arduino Zero

La tension Arduino Zero qu'il peut prendre comme mentionné sur sa fiche technique est comprise entre 6 et 20 volts, mais il est recommandé de ne pas utiliser plus de 12V car cela peut provoquer une surchauffe du régulateur de tension en raison d'une perte de tension excessive lors de la conversion en 3,3V .

Une utilisation en dehors de cette plage peut entraîner des dommages à la carte ou une sous-performance de votre projet. Il est important de noter que la tension de la source d'alimentation externe affectera les performances de la carte, il est donc essentiel de choisir la bonne source d'alimentation pour votre projet.

Broches Arduino Zero Power

Arduino zero dispose d'une gamme variée de sources d'alimentation. Il peut être alimenté à l'aide des différentes sources suivantes :

Broche VIN : alimentation de la carte

Lorsque vous utilisez une source d'alimentation externe pour faire fonctionner la carte Arduino Zero, la broche VIN est pratique. Cette broche est responsable de la réception de la tension d'entrée sur la carte. De plus, si vous fournissez une tension via la prise d'alimentation, vous pouvez également y accéder via cette broche.

Broche 5V: sortie de tension régulée

La carte Arduino Zero dispose d'un régulateur intégré qui délivre un 5V régulé via la broche 5V. Arduino Zero peut être directement connecté à 7V à 12V à l'aide d'une prise DC ou d'une broche VIN. Cette tension passe ensuite dans un régulateur qui la convertit en 5V. Ces 5V peuvent être utilisés comme source d'alimentation pour les capteurs de fonctionnement 5V. Attention cependant à ne pas fournir de tension via les broches 5V ou 3.3V car cela peut contourner le régulateur et endommager la carte.

Broche 3.3V: Régulateur embarqué

Le régulateur embarqué génère une alimentation de 3,3 V pour la carte. Ce 3,3V est donné aux périphériques embarqués dont le microcontrôleur SAMD21. Ce 3,3 V peut également être émis par la broche 3,3 V intégrée et la quantité maximale de courant que nous pouvons tirer de la broche Arduino Zero 3,3 V est de 800 mA.

Broche GND : mise à la terre de la carte

La carte Zero possède plusieurs broches de masse (GND) qui aident à établir une connexion à la masse. Vous pouvez les utiliser pour mettre à la terre les composants que vous connectez à la carte.

Broche IOREF : référence de tension

La broche IOREF fournit la référence de tension pour le fonctionnement du microcontrôleur. Cette broche aide la carte Arduino Zero à sélectionner la meilleure source d'alimentation pour son fonctionnement. Il active également le traducteur de tension qui aide la carte Arduino à fonctionner avec 3,3 V.

Mémoire

La distribution de la mémoire d'Arduino Zero (SAMD21) est la suivante :

MemoireValeur
Memoire Flash256 KB
SRAM32 KB
EEPROM16 KB

 

Entrée et sortie

L'Arduino Zero a un total de 20 broches d'E/S à usage général. Voici quelques spécifications de ces broches GPIO :

  • Les broches Arduino Zero peuvent être contrôlées avec les fonctions de programmation Arduino telles que pinMode(), digitalWrite() et digitalRead().
  • Les broches Arduino Zero PWM sont 3, 4, 5, 6, 8, 9, 10, 11, 12, 13. Pour accéder à ces broches, la fonction analogWrite() est utilisée.
  • Toutes ces broches fonctionnent à 3,3 volts.
  • Chacune de ces broches a une capacité maximale de courant d'absorption jusqu'à 7 mA. Ces broches ont également une résistance pull-up interne de 20-50 kOhms. Ces résistances sont déconnectées par défaut sur Arduino Zero.

Pour quelques broches supplémentaires d'Arduino Zero avec une fonction spécialisée :

  • Entrées analogiques : A0 à A5 (6 canaux). Chacune de ces broches a une résolution de 12 bits. Par défaut, la référence est définie de la masse à 3,3 V, mais la limite supérieure de l'ADC peut être ajustée à l'aide de la fonction analogReference().
  • Broches de sortie d'entrée numérique : 0 sur 13.
  • Broches de sortie PWM : 0 sur 13.
  • SPI Interface: SPI MOSI (pin 11), SPI MISO (pin 12), SPI SCK (pin 13).
  • I2C Interface: SDA (pin 20) and SCL (pin 21).
  • UART Interface: RX (pin 0) and TX (pin 1).
  • Interface USB native : Port USB natif (port de programmation).
  • Sortie DAC : DAC0 et DAC1.
  • Interface de débogage SWD : SWDIO et SWCLK.
  • Broche RESET: Broche RESET .
  • Interruptions externes : Il est disponible sur toutes les broches Arduino Zero sauf la broche 4.
  • TWI: Broche SDA/SCL. Il prend en charge la communication TWI. Pour établir TWI, une bibliothèque Arduino Wire est utilisée.
  • AREF: Broche de tension de référence pour les valeurs analogiques. Peut être contrôlé à l'aide de la fonction analogReference().
  • Reset: Ceci est réinitialisé pour une ligne ou un tableau. Il peut réinitialiser le microcontrôleur en mettant sa ligne sur LOW.

Notez que certaines des broches ci-dessus ont également une double fonction. Par exemple, les broches 0 et 1 peuvent être utilisées comme E/S numériques ou comme interface UART. De même, les broches 11, 12 et 13 peuvent être utilisées comme interface SPI ou comme E/S numériques.

Conclusion

La carte Arduino Zero est une carte puissante et polyvalente, parfaite pour les débutants et les utilisateurs avancés. Avec ses fonctionnalités avancées, sa compatibilité avec le logiciel Arduino (IDE) et sa large gamme d'applications, la carte Arduino Zero est un excellent choix pour tous ceux qui cherchent à créer des projets électroniques. En suivant les étapes décrites dans ce guide, vous pouvez facilement démarrer avec la carte Arduino Zero et commencer à construire vos propres projets.